Changing keyboard layout automatically while entering a password

ABSTRACT

A system and method for automatically reconfiguring a keyboard layout display to facilitate entry of password characters. The system analyzes the password while setting it, and will save a required keyboard layout for each character. A method includes obtaining an encoded sequence of keyboard layouts mapped to a corresponding characters sequence of a user password, receiving input of a password character and determining whether the character input is correct. If the character entered is correct: decoding the keyboard layout sequence to obtain a correct keyboard layout associated with a next password character to be entered; and automatically displaying the correct keyboard layout associated with a next character to be entered; or if the character entered is not correct: decoding the keyboard layout sequence to obtain one of: a correct or incorrect keyboard layout associated with a next password character to be entered; and automatically displaying the correct or incorrect keyboard layout on the device.

BACKGROUND

The present invention relates generally to computer security andpassword protection, and more particularly, relates to a reconfigurableelectronic keyboard for use with desktop computer systems, mobilesmartphones, and like devices, and a method to change the keyboardlayout automatically of such a keyboard while entering a password.

In some desktop and mobile computer systems and like devices, e.g., asmartphone or tablet keyboard, it is often that users need to manuallyenter their password via a keyboard interface provided by the device—atleast initially to access the device functionality in the firstinstance. Oftentimes, it may be inconvenient for users to enter acomplex password because the keyboard cannot display the full characterset at the same time. For example, on some devices, for a user to entera complex password on a keyboard, e.g., a password “Qw3ErT4&”, the userneeds to change the keyboard layout seven times to input the passwordcharacter string, e.g., by selecting a shift key (or not) to alternatebetween the keyboard layout having upper case characters, lower casecharacters, and numbers as this example password “Qw3ErT4&” wouldrequire.

It would be desirable to provide a method and system that enables thekeyboard layout to change automatically while a user enters the passwordcharacter sequence via a soft keyboard interface.

BRIEF SUMMARY

In an aspect of the present invention, a method for automaticallyreconfiguring a keyboard layout is provided.

In one particular aspect, there is provided a method to predetermine thekeyboard layout on a smartphone or tablet while inputting a password.

Thus, in one aspect, there is provided a method to automatically changea keyboard layout of a device while a user enters a password. The methodcomprises: obtaining an encoded sequence of keyboard layouts mapped to acorresponding sequence of characters of a user password; and a)receiving input of a character of the user password; and b) determiningwhether the character input is correct, and if the character entered iscorrect: decoding the mapped keyboard layout sequence to obtain acorrect keyboard layout associated with a next character to be enteredfor the password; and automatically displaying the correct keyboardlayout associated with a next character to be entered on the device.Otherwise, if the character entered is not correct: decoding the mappedkeyboard layout sequence to obtain one of: a correct or incorrectkeyboard layout associated with a next character to be entered for thepassword; and automatically displaying the correct or incorrect keyboardlayout on the device.

Further to this aspect, the input character entered is the firstcharacter of the user password, and the method further comprises:repeating each of steps a)-b) until all successive characters of theuser password are correctly entered.

In another aspect, there is provided a system for automatically changinga keyboard layout of a device while a user enters a password. The systemcomprises: a memory storage device; and a hardware processor, coupled tothe memory storage device, the processor configured to: obtain anencoded sequence of keyboard layouts mapped to a corresponding sequenceof characters of a user password; and a) receive input of a character ofthe user password; and b) determine whether the character input iscorrect, and if the character entered is correct: decode the mappedkeyboard layout sequence to obtain a correct keyboard layout associatedwith a next character to be entered for the password; and automaticallydisplay on the device the correct keyboard layout associated with a nextcharacter to be entered; or if the character entered is not correct:decode the mapped keyboard layout sequence to obtain one of: a corrector incorrect keyboard layout associated with a next character to beentered for the password; and automatically display on the device thecorrect or incorrect keyboard layout.

In a further aspect, there is provided a computer program product forperforming operations. The computer program product includes a storagemedium readable by a processing circuit and storing instructions run bythe processing circuit for running a method. The method is the same aslisted above.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

These and other objects, features and advantages of the presentinvention will become apparent from the following detailed descriptionof illustrative embodiments thereof, which is to be read in connectionwith the accompanying drawings. The various features of the drawings arenot to scale as the illustrations are for clarity in facilitating oneskilled in the art in understanding the invention in conjunction withthe detailed description. In the drawings:

FIGS. 1A-1C show three different keyboard layout types, in oneembodiment, that can be generated on the display of a digital mobilephone device;

FIG. 2 shows a method 50 including general processing steps of obtaininga hint sequence corresponding to a user application password.

FIG. 3 shows a method for changing (re-configuring) a keyboard displayscreen layout upon each entry of a character of that user's userpassword according to one embodiment;

FIG. 4 is a illustrative depiction of a mobile device in which thepresent invention is employed;

FIG. 5 depicts an exemplary hardware configuration of the device of FIG.4. for performing methods described herein in one non-limitingembodiment; and

FIG. 6 depicts a memory system supporting various components forcarrying out the methods described herein in one non-limitingembodiment.

DETAILED DESCRIPTION

The present invention is directed to a system and method forautomatically changing (re-configuring) a keyboard display screen layoutupon each successful entry of a character of that user's user password.

FIGS. 1A-1C show three different example keyboard layout types, in oneillustrative embodiment, that can be generated on the display area 9 ofa digital communications device. Such a device may include, but are notlimited to: a smartphone, iPhone, a tablet device or any like devicethat has capability to display having a soft keyboard, e.g., for variouspurposes such as device entry, application entry, etc., where displayspace is limited.

Each of the example displays 9 of FIGS. 1A-1C may comprise atouch-sensitive input screen in a designated area within the devicedisplay region, and is generated by the device in known manner. In oneembodiment, the designated touch screen display area 9 can be located ata fixed location (e.g., a bottom) of the display, and can have text,color, icons, or the like, or a combination thereof, designating thekeyboard display area, in the manner as known. As shown in FIG. 1A, afirst example keyboard layout display 10 is depicted as a CAP letterQWERTY type layout. In FIG. 1B, a second example keyboard layout display20 shows a numeric character type layout, and in FIG. 1C, a thirdexample keyboard layout display 30 is of a small letter QWERTY typelayout. The example keyboard layouts 10, 20, and 30 are shown fornon-limiting, illustrative purposes and other types of virtual keyboarddisplay layouts can be generated for all possible languages, symbols,characters, etc. that can be displayed on a mobile device, such asmobile device 100 of FIG. 4.

In one embodiment, the present disclosure provides a method topredetermine the keyboard layout on a smartphone or tablet whileinputting a password. A mechanism is built into the device that storesin a memory a “hint” sequence having characters representing a sequenceof keyboard layouts associated with a respective sequence of charactersof a user password for a particular application that requires a passwordentry to activate. Multiple hint sequences may be provided and stored inthe device, one associated for each application that requires a passwordentry to activate. The length and character type (e.g., numbers, lettersand symbols) of a user password is not restricted.

In an embodiment, a hint is a sequence of characters, e.g., a pluralityof numbers, representing a sequence of keyboard layouts in one-to-onecorrespondence with a respective sequence of characters of the passwordto be entered. For example, associating a sequence of keyboard layouts10, 20 and 30 shown in FIG. 1 may generate a hint as a correspondingsequence of numbers 1, 2 and 3 with hint character “1” corresponding toa keyboard layout 10 of FIG. 1A associated with entry of the firstpassword character, hint character “2” corresponding to a keyboardlayout 20 of FIG. 1B associated with entry of the second passwordcharacter, and hint character “3” corresponding to a keyboard layout 30of FIG. 1C, associated with entry of the third password character, etc.

It is understood that the hint sequence of characters may be stored in amemory storage unit within the device as the actual display sequence(e.g., “13213122”) or, for greater security, the sequence may be encodedusing a hash or encryption of the actual display sequence. The hash is aper password hash, with each password potentially having a differenthash for a respective application requiring password entry to activate.In one embodiment, the hint sequence for keyboard layouts is stored in afashion that depends upon the correct entries being entered. Forexample, the method may include encoding a sequence 13213122, and inoperation, each character of the sequence is decoded by applying logic,e.g., XORing the corresponding encoded character of the hint sequencewith the corresponding password character entered. In one embodiment,the stored hint sequence is a function of the correct password, and maybe encrypted using each character of the actual correct password as itis entered. In this manner, unless the user enters the correct passwordcharacters, the correct keyboard layouts may not be presented for thesubsequent characters.

Thus, in operation, use of this hint sequence of screen displaysassociated with a respective password characters will cause generatingand automatic switching of the keyboard layout appropriate for the nextsuccessive password character to be entered. For example, responsive tosuccessful entry of a first character of the password sequence, the nextcharacter of the hint sequence will cause the device to display thekeyboard suitable for the next character of the password to be entered.For example, given the example keyboard displays 10, 20 and 30 of FIG.1, associated hint values may be 1, 2 and 3 respectively. Thus, given anexample user password of “Qw3ErT4&”, using the convention ofcorresponding displays of FIG. 1, the system will automatically generatea hint sequence (or an obfuscation thereof) in this example a sequenceof “13213122” for the keyboard layouts after analyzing the password andthe hint (sequence of displays).

In one embodiment, each application initiated (detected) will provide aninitial “hint” such that the first keyboard layout will automatically begenerated for the user and start the user out at with the correct screenlayout for receiving user entry of the first password character.However, preferably, the initial keyboard layout for the first passwordcharacter to be entered is to be displayed manually, and the remainderkeyboard layouts displayed in accordance with the hint sequence.

Initially, within the device, a password field is stored and populatedwith a “hint” such that a correct order of keyboard layouts will bepresented on the device display to the user upon successive entry of thecorrect password characters. As will be described, the keyboard layoutis automatically updated on a per character basis, as long as animmediate prior password character has been correctly entered. That is,a “next” displayed correct keyboard layout could not be determined untilthe immediately “prior” character of the password is entered correctly,to avoid making brute force attacks easier.

For the example hint sequence “13213122” for the sequence of keyboardlayouts, while an attacker may be able to see that the first keyboardlayout is “1”, the value for the second keyboard layout depends bothupon the first password character entered as well as the correspondingmapped entry in the database.

Given an embodiment in which the initial keyboard layout for the firstpassword character to be entered is to be displayed manually, theinitial (first) keyboard display (corresponding to the first passwordcharacter to be entered) is disabled requiring the user to navigate thedisplay to the correct keyboard layout prior to entering the firstpassword character. Disabling the first “hint” sequence character andrequiring the user to initially set the first keyboard layout may reducethe risk that an attacker can figure out and know that the firstpassword character is of a particular type, e.g., upper case, lowercase, numeric, symbol, etc. of a first keyboard layout. Then, responsiveto the first correct password character entry, the device will thenautomatically switch the display to present the next keyboard layoutassociated with the next password character to be entered as indicatedin the hint. This is repeated until all password characters have beensuccessfully entered.

Thus, when activating an application or device, the device processorwill receive a hint associated with the corresponding password to beentered that includes the hint sequence of characters and initiategeneration of the keyboard layout corresponding to the first passwordcharacter to be entered. For an example password character sequencehaving a corresponding keyboard layout sequence that includes 2, 1, 3,etc., the device will interpret the first character of the hintsequence, and initiate a first display of the first correspondingkeyboard layout 20 (FIG. 1B). A next keyboard layout 10 (FIG. 1A) willbe displayed responsive to a successful entry of the first passwordcharacter of that respective password character sequence entered by auser; and the next keyboard layout 30 (FIG. 1C) will be displayedresponsive to a successful entry of the second password character ofthat respective password character sequence entered by a user, and soon.

It is understood that, by using the hint sequence to automaticallycontrol a keyboard layout sequence, a user could immediately know thatprior character entered is wrong if the next keyboard layout displayed(responsive to that prior character entered) is not a correct keyboardlayout for the next successive character to be entered. This provides asuperior user experience, because a user may avoid the effort ofentering additional characters when the password will not be accepted.

FIG. 2 depicts a method 50 according to one embodiment of the presentdisclosure that includes the general steps of setting the “hint”sequence corresponding to the user password so that the keyboard displayscreen layout may be automatically changed (re-configured) upon eachentry of a character of that user's application password.

The method 50 of FIG. 2 initially requires entry, e.g., a setting (orre-setting) of the user's password, in the first instance, in a mannertypically enabled by a device or application for enabling or authorizingthe user's entry into or use of the device, an application, or to changea device setting, for example. As shown in FIG. 2, a first step includesat 53 receiving a series of characters comprising the user's password.The characters are a sequence of user selected characters, symbols,alphanumeric characters, large/small in any combination entered, forexample, via the various layouts of FIGS. 1A-1C. As part of this step,the password is stored in a device memory location, e.g., a main memory,or a database, for access by the various applications when authorizingan access. Concurrent with the time of a character's entry, or after allthe characters have been entered, at 55, the system notes the enteredcharacter and analyzes each character in the sequence to determine atype of keyboard layout associated with the entered character, and at58, map that character to the associated layout. For example, if thepassword is “Qw3ErT4&”, the system will map this sequence for thekeyboard layout after analyzing the password and generate acorresponding hint sequence “13213122” (using the keyboard layouts ofFIG. 1A-1C).

Continuing to step 60, the method further performs generating anobfuscated keyboard layout hint sequence in the memory. This employs anencoding, e.g., via applying an encryption or a hash function to thesequence that is based on the correct password that ensures if the hintsequence is compromised or stolen, the actual password will not beeasily recovered. For example, if the password were aB^dE$, then thesystem would calculate the actual keyboard hint of 23123 when thepassword is initially entered (e.g. the first character's keyboard hintis not stored; the user must manually change to the correct keyboardlayout to start). The method performs storing a sequence of numbersthat, when combined with the password characters as they are entered,will produce the hint. When the “a” character is entered, it is desiredto obtain a layout corresponding to 2; when aB is entered, it is desiredto obtain a layout corresponding to 3, when ab^ is entered, it isdesired to obtain a layout corresponding to 1, and so forth. One way todo this includes using a one way hash function on the first characterand then adding the first keyboard hint (2), then a one-way hash of thefirst and second characters and adding the next keyboard hint (3), andso forth to produce an obfuscated hint. When each character of thecorrect password is entered, it will produce the keyboard hint for thenext character; if the incorrect password is entered, the keyboard mayor may not be correct, but the resulting obfuscated hint cannot easilybe used to derive the password. Cryptographic ‘salt’ and othertechniques may be used to ensure that the keyboard hint cannot be usedto attack the password more easily than the stored password hash.

Preferably, this value will be saved in an obfuscated form along withthe password. For example, as mentioned, the mapping may include theaforementioned encoding of each user password character to obtain theassociated (encoded) hint sequence.

FIG. 3 shows a method 70 for changing (re-configuring) a keyboarddisplay screen layout upon each entry of a character of that user's userpassword according to one embodiment. This method 70 is an iterativeloop that ensures the correct entry of each character in the passwordsequence. In one embodiment, FIG. 3 shows an example processing thatreflects that the user entered password is not validated one characterat a time—rather, the characters input are just used to determine thenext keyboard layout to be displayed, so that if a user types anincorrect character that user may or may not get the correct layoutdisplayed. If the user actually knows the correct password, this willgive the user an early warning that that user has made an error enteringthe password, and that the user can start the password entry over again.Thus, at a first step 73, in order to unlock a device or application,the user will be prompted to enter a password, and initially, manuallynavigates to the correct keyboard display associated with the firstcharacter of the password to be entered and inputs the first characterof the password. It is understood that the device processor will obtainthe hint sequence from the memory storage location or database.

Then, at 78, the entered character is combined with the hint to obtainthe next keyboard layout. Thus, as determined at 78, if the firstcharacter of the password has been successfully input, the systemcalculates the correct keyboard hint and changes the display to thecorrect keyboard layout for the next character as indicated at 83. Thenthe user will be able to enter the next character of the password at 86.However, at 78, if an incorrect character was entered, the systemcalculates a different keyboard hint, which may or may not be correct,and will display a keyboard layout that may or may not be correct asindicated at step 80. Because the calculation depends on all previouscharacters entered, it is very likely that an incorrect keyboard will bedisplayed within several keystrokes of entering an incorrect character.

In one embodiment, it is conceivable that a user may not realize thatthe next keyboard displayed at step 80 is incorrect, and may continue tostep 86 where the next password character input is entered by andreceived from the user via the display having the incorrect changedkeyboard layout.

Otherwise, responsive to the next keyboard displayed at step 80 being anincorrect keyboard display layout for the next character, a user mayrealize that the prior password character was incorrectly entered, andrather than submitting a next character at 86, may initiate a passwordentry reset at 85, and return to step 73 to initiate the password entryprocess again and change the keyboard layout manually to enter the firstcharacter of the password again, and the process is repeated.

Returning to 78, if it is determined that the correct value of the firstcharacter of the password has been successfully input, then the processcontinues to 83 where, based on the hint sequence in which the systemdecodes the next character from the hint sequence, the correct nextkeyboard layout is generated for display based on the hint sequence, andthen the process proceeds to FIG. 3, step 86 where the next passwordcharacter input is entered by and received from the user via the displayhaving the correctly changed layout.

Then, continuing at 89, a determination is made as to whether the userhas entered the last character of the user's password. If the lastcharacter has not been entered, then the process returns to step 78 todetermine if the most recent (i.e., next) password character input ofthe password sequence has been correctly entered. Then, at 78, thesystem will responsively either generate a correct keyboard layout basedon the sequence at 83, or generate an incorrect keyboard layout based onthe sequence at 80. The process steps 78-89 repeats for each characterin the sequence of characters entered until at step 89 it is determinedthat the last character has been input.

When, at 89, it is determined that last character of the passwordsequence has been entered by the user, then all of the input charactersof the entered password are submitted for authentication at 90 and theprocess terminates.

In view of FIG. 3, functionally, after a first character is correctlyentered, the stored hint is obtained, and each character entered willdecode the next character of the hint sequence, and responsively switchto a next correct or incorrect keyboard display depending upon whetherthe password character entered is correct.

Thus, the stored hint sequence functions as a string cipher, where eachcharacter that is received is used to decrypt the next hint. If the userenters the correct character it will decrypt the hint correctly andproduce the correct layout; if the user enters the wrong character, itwill decrypt the hint incorrectly and the user may or may not bepresented with the correct layout.

With reference now to FIG. 4, a diagram of a device, e.g., in the formof a mobile device 100, is depicted in accordance with an embodiment inwhich the present methods are employed.

The mobile device 100 includes a display 102 for presenting textual andgraphical information and may include any known display device, such asa liquid crystal display (LCD) device. The display may be used topresent any type of subject matter as known in the art. Display 102 mayinclude a touch sensitive display surface configured to detect a touchsignal indicating contact with a user (such as a finger or stylus, forexample).

Mobile device 100 may also includes a virtual keypad or virtual keyboardlayout 104 for display, correlating with a touch sensitive surfaceconfigured to detect a touch signal indicating contact with a user (suchas a finger or stylus) and via which may be received user inputs ofpassword characters, in the manner as described herein. Display 102 andvirtual keyboard layout 104 thus form a graphical user interface thatmay be implemented by system software residing in computer readablemedia in operation within mobile device 100.

Turning now to FIG. 5, a block diagram of a mobile device system isshown in accordance with a preferred embodiment of the presentinvention. Mobile device 200 is an example of a mobile device, such asmobile device 100 in FIG. 4, in which code or instructions implementingthe processes described herein with respect to FIGS. 2 and 3 may belocated and run. Mobile device 200 includes a bus 202 to which processor204 and main memory 206 are connected. In one embodiment, a processor orcentral processing unit (CPU) 204 is programmed for presenting thevirtual keyboard layout of virtual keys, detecting and registering theuser input, and determining whether the keyboard layout changes need tobe made in the manner as described herein.

Display adapter 208, keypad adapter 210, storage 212, and audio adapter214 also are connected to bus 202. Cradle link 216 provides a mechanismto connect mobile device 200 to a cradle used in synchronizing data inmobile device 200 with another data processing system. Further, displayadapter 208 also includes a mechanism to receive user input from astylus when a touch screen display is employed.

An operating system runs on processor 204 and is used to coordinate andprovide control of various components within mobile device 200 in FIG.5. The operating system may be, for example, a commercially availableoperating system such as Windows CE, which is available from MicrosoftCorporation. Instructions for the operating system and applications orprograms are located on storage devices, such as storage 212, and may beloaded into main memory 206 for execution by processor 204.

That is, in one illustrated embodiment, as shown in FIG. 6, the memory206 may include a random access memory (RAM) where the determinedkeyboard map layout type for each respective character in the sequenceis stored.

In operation, the processor 204 is configured to detect the touch inputfrom a user as previously described, store such input in memory 206, anddetermine applicable keyboard layout as previously described. Asmentioned, the processing component 204 operates under control of anoperating system (OS) 300 stored in the memory 206, and interfaces withthe user to accept inputs and commands and to present results. In oneembodiment of the present invention, the OS 300 facilitates keyboardlayout configuration functionality according to the present invention.To this end, OS 300 includes a keyboard generation module 304, which maybe adapted for carrying out the various processes and mechanismsdescribed herein, e.g., storing hint sequence 306 corresponding to auser password 302 associated with an application program 308, andimplementing the relationships and logic used for determining andtransforming a soft keyboard layout based on user-entered passwordcharacter sequence in the manner as described herein with respect toFIGS. 1-3.

Those of ordinary skill in the art will appreciate that the hardware inFIG. 4 may vary depending on the implementation. Other internal hardware(e.g., communication devices) or peripheral devices may be used inaddition to or in place of the hardware depicted in FIG. 5.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions. These computer readable programinstructions may be provided to a processor of a general purposecomputer, special purpose computer, or other programmable dataprocessing apparatus to produce a machine, such that the instructions,which execute via the processor of the computer or other programmabledata processing apparatus, create means for implementing thefunctions/acts specified in the flowchart and/or block diagram block orblocks. These computer readable program instructions may also be storedin a computer readable storage medium that can direct a computer, aprogrammable data processing apparatus, and/or other devices to functionin a particular manner, such that the computer readable storage mediumhaving instructions stored therein comprises an article of manufactureincluding instructions which implement aspects of the function/actspecified in the flowchart and/or block diagram block or blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the describedembodiments. The terminology used herein was chosen to best explain theprinciples of the embodiments, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdisclosed herein.

While the present invention has been particularly shown and describedwith respect to preferred embodiments thereof, it will be understood bythose skilled in the art that changes in forms and details may be madewithout departing from the spirit and scope of the present application.It is therefore intended that the present invention not be limited tothe exact forms and details described and illustrated herein, but fallswithin the scope of the appended claims.

What is claimed is:
 1. A method to automatically change a keyboardlayout of a device while a user enters a password comprising: obtainingan encoded sequence of keyboard layouts mapped to a correspondingsequence of characters of a user password; and a) receiving input of acharacter of said user password; b) determining whether said characterinput is correct, and if said character entered is correct: decodingsaid mapped keyboard layout sequence to obtain a correct keyboard layoutassociated with a next character to be entered for said password; andautomatically displaying said correct keyboard layout associated with anext character to be entered on said device; or if said characterentered is not correct: decoding said mapped keyboard layout sequence toobtain one of: a correct or incorrect keyboard layout associated with anext character to be entered for said password; and automaticallydisplaying said correct or incorrect keyboard layout on said device. 2.The method of claim 1, wherein said input character entered is saidfirst character of said user password, said method further comprising:repeating each of steps a)-b) until all successive characters of saiduser password are correctly entered.
 3. The method of claim 2, wherein,prior to input of said first character of said user password, said usermanually navigating to a correct keyboard layout associated for saidfirst character input.
 4. The method of claim 2, wherein, responsive todisplaying said incorrect keyboard layout on said device, re-initiating,by the user, entry of the user password beginning from said firstcharacter.
 5. The method of claim 2, wherein said encoded sequence ofkeyboard layouts mapped to a corresponding sequence of characters of auser password to be entered is represented as a character string.
 6. Themethod of claim 2, further comprising: storing said character stringrepresentation in a memory storage unit at said device in associationwith said user password.
 7. The method of claim 6, further comprising:encoding said sequence of keyboard layouts by: setting a user passwordby inputting to said device each successive character of said userpassword; analyzing a keyboard layout associated with each characterinput; determining, based on the analyzing, a keyboard layout to thecharacter input; and mapping a keyboard layout to a correspondingcharacter of said character string representation.
 8. The method ofclaim 6, further comprising: encrypting or obfuscating said storedcharacter string representation prior to said storing.
 9. A system toautomatically change a keyboard layout of a device while a user enters apassword comprising: a memory storage device; a hardware processor,coupled to the memory storage device, said processor configured to:obtain an encoded sequence of keyboard layouts mapped to a correspondingsequence of characters of a user password; and a) receive input of acharacter of said user password; b) determine whether said characterinput is correct, and if said character entered is correct: decode saidmapped keyboard layout sequence to obtain a correct keyboard layoutassociated with a next character to be entered for said password; andautomatically display on said device said correct keyboard layoutassociated with a next character to be entered; or if said characterentered is not correct: decode said mapped keyboard layout sequence toobtain one of: a correct or incorrect keyboard layout associated with anext character to be entered for said password; and automaticallydisplay on said device said correct or incorrect keyboard layout. 10.The system of claim 9, wherein said input character entered is saidfirst character of said user password, said hardware processor furtherconfigured to: repeat each of steps a)-b) until all successivecharacters of said user password are correctly entered.
 11. The systemof claim 10, wherein, responsive to displaying said incorrect keyboardlayout on said device, re-initiating, by the user, entry of the userpassword beginning from said first character.
 12. The system of claim10, wherein said hardware processor is configured to represent, as acharacter string, said encoded sequence of keyboard layouts mapped to acorresponding sequence of characters of the user password.
 13. Thesystem of claim 10, wherein said hardware processor is configured to:store said character string representation in a memory storage unit atsaid device in association with said user password.
 14. The system ofclaim 13, wherein said hardware processor is configured to encode saidsequence of keyboard layouts by: setting a user password by inputting tosaid device each successive character of said user password; analyzing akeyboard layout associated with each character input; determining, basedon the analyzing, a keyboard layout to the character input; and mappinga keyboard layout to a corresponding character of said character stringrepresentation.
 15. The system of claim 13, wherein said hardwareprocessor is configured to: encrypt or obfuscate said stored characterstring representation prior to said storing.
 16. A computer programproduct for automatically changing a keyboard layout of a device while auser enters a password, the computer program product comprising atangible storage medium readable by a processing circuit and storinginstructions run by the processing circuit for performing a method, themethod comprising: obtaining an encoded sequence of keyboard layoutsmapped to a corresponding sequence of characters of a user password; andc) receiving input of a character of said user password; d) determiningwhether said character input is correct, and if said character enteredis correct: decoding said mapped keyboard layout sequence to obtain acorrect keyboard layout associated with a next character to be enteredfor said password; and automatically displaying said correct keyboardlayout associated with a next character to be entered on said device; orif said character entered is not correct: decoding said mapped keyboardlayout sequence to obtain one of: a correct or incorrect keyboard layoutassociated with a next character to be entered for said password; andautomatically displaying said correct or incorrect keyboard layout onsaid device.
 17. The computer program product of claim 16, wherein saidinput character entered is said first character of said user password,said method further comprising: repeating each of steps a)-b) until allsuccessive characters of said user password are correctly entered. 18.The computer program product of claim 17, wherein said method furthercomprises: storing said character string representation in a memorystorage unit at said device in association with said user password. 19.The computer program product of claim 18, wherein said method furthercomprises: encoding said sequence of keyboard layouts by: setting a userpassword by inputting to said device each successive character of saiduser password; analyzing a keyboard layout associated with eachcharacter input; determining, based on the analyzing, a keyboard layoutto the character input; and mapping a keyboard layout to a correspondingcharacter of said character string representation.
 20. The computerprogram product of claim 18, wherein said method further comprises:encrypting or obfuscating said stored character string representationprior to said storing.